﻿2026-08-28T15:28:27.5345426Z Current runner version: '2.336.0'
2026-08-28T15:28:27.5384205Z ##[group]Runner Image Provisioner
2026-08-28T15:28:27.5385776Z Hosted Compute Agent
2026-08-28T15:28:27.5386857Z Version: 20260819.586
2026-08-28T15:28:27.5388110Z Commit: 3cc4a88dfa507ef76119ad1bb3eccc6378bb2b76
2026-08-28T15:28:27.5389385Z Build Date: 2026-08-18T23:20:18Z
2026-08-28T15:28:27.5390976Z Worker ID: {3ec16f92-5f98-4a79-b0d6-b377c69b3ab0}
2026-08-28T15:28:27.5392390Z Azure Region: westcentralus
2026-08-28T15:28:27.5393473Z ##[endgroup]
2026-08-28T15:28:27.5396773Z ##[group]Operating System
2026-08-28T15:28:27.5397872Z Ubuntu
2026-08-28T15:28:27.5398723Z 24.04.4
2026-08-28T15:28:27.5399770Z LTS
2026-08-28T15:28:27.5401159Z ##[endgroup]
2026-08-28T15:28:27.5402319Z ##[group]Runner Image
2026-08-28T15:28:27.5403504Z Image: ubuntu-24.04
2026-08-28T15:28:27.5404501Z Version: 20260823.283.1
2026-08-28T15:28:27.5406763Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260823.283/images/ubuntu/Ubuntu2404-Readme.md
2026-08-28T15:28:27.5409570Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260823.283
2026-08-28T15:28:27.5411677Z ##[endgroup]
2026-08-28T15:28:27.5413764Z ##[group]GITHUB_TOKEN Permissions
2026-08-28T15:28:27.5416811Z Contents: read
2026-08-28T15:28:27.5417841Z Metadata: read
2026-08-28T15:28:27.5419005Z ##[endgroup]
2026-08-28T15:28:27.5422714Z Secret source: Actions
2026-08-28T15:28:27.5424680Z Prepare workflow directory
2026-08-28T15:28:27.6130069Z Prepare all required actions
2026-08-28T15:28:27.6206661Z Getting action download info
2026-08-28T15:28:28.0403528Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262)
2026-08-28T15:28:28.1935349Z Download action repository 'actions/setup-node@v4' (SHA:49933ea5288caeca8642d1e84afbd3f7d6820020)
2026-08-28T15:28:28.3943209Z Complete job name: Frontend – tests, typecheck, production build
2026-08-28T15:28:28.4733765Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-08-28T15:28:28.4744694Z ##[group]Run actions/checkout@v4
2026-08-28T15:28:28.4746038Z with:
2026-08-28T15:28:28.4746868Z   repository: Gamexgit/FinanceManager
2026-08-28T15:28:28.4754468Z   token: ***
2026-08-28T15:28:28.4755267Z   ssh-strict: true
2026-08-28T15:28:28.4756016Z   ssh-user: git
2026-08-28T15:28:28.4756861Z   persist-credentials: true
2026-08-28T15:28:28.4757717Z   clean: true
2026-08-28T15:28:28.4758474Z   sparse-checkout-cone-mode: true
2026-08-28T15:28:28.4759415Z   fetch-depth: 1
2026-08-28T15:28:28.4760226Z   fetch-tags: false
2026-08-28T15:28:28.4761447Z   show-progress: true
2026-08-28T15:28:28.4762279Z   lfs: false
2026-08-28T15:28:28.4763127Z   submodules: false
2026-08-28T15:28:28.4763985Z   set-safe-directory: true
2026-08-28T15:28:28.4764993Z   allow-unsafe-pr-checkout: false
2026-08-28T15:28:28.4766336Z ##[endgroup]
2026-08-28T15:28:28.7269406Z Syncing repository: Gamexgit/FinanceManager
2026-08-28T15:28:28.7273257Z ##[group]Getting Git version info
2026-08-28T15:28:28.7275823Z Working directory is '/home/runner/work/FinanceManager/FinanceManager'
2026-08-28T15:28:28.7279868Z [command]/usr/bin/git version
2026-08-28T15:28:28.7281858Z git version 2.55.0
2026-08-28T15:28:28.7287248Z ##[endgroup]
2026-08-28T15:28:28.7295706Z Temporarily overriding HOME='/home/runner/work/_temp/b74bc613-214a-488c-8204-e60555403f03' before making global git config changes
2026-08-28T15:28:28.7298612Z Adding repository directory to the temporary git global config as a safe directory
2026-08-28T15:28:28.7301858Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/FinanceManager/FinanceManager
2026-08-28T15:28:28.7306512Z Deleting the contents of '/home/runner/work/FinanceManager/FinanceManager'
2026-08-28T15:28:28.7309318Z ##[group]Initializing the repository
2026-08-28T15:28:28.7314032Z [command]/usr/bin/git init /home/runner/work/FinanceManager/FinanceManager
2026-08-28T15:28:28.7315728Z hint: Using 'master' as the name for the initial branch. This default branch name
2026-08-28T15:28:28.7317543Z hint: will change to "main" in Git 3.0. To configure the initial branch name
2026-08-28T15:28:28.7319089Z hint: to use in all of your new repositories, which will suppress this warning,
2026-08-28T15:28:28.7320568Z hint: call:
2026-08-28T15:28:28.7321317Z hint:
2026-08-28T15:28:28.7322164Z hint: 	git config --global init.defaultBranch <name>
2026-08-28T15:28:28.7323184Z hint:
2026-08-28T15:28:28.7324147Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
2026-08-28T15:28:28.7325869Z hint: 'development'. The just-created branch can be renamed via this command:
2026-08-28T15:28:28.7327196Z hint:
2026-08-28T15:28:28.7327947Z hint: 	git branch -m <name>
2026-08-28T15:28:28.7328796Z hint:
2026-08-28T15:28:28.7329911Z hint: Disable this message with "git config set advice.defaultBranchName false"
2026-08-28T15:28:28.7332036Z Initialized empty Git repository in /home/runner/work/FinanceManager/FinanceManager/.git/
2026-08-28T15:28:28.7335028Z [command]/usr/bin/git remote add origin https://github.com/Gamexgit/FinanceManager
2026-08-28T15:28:28.7338573Z ##[endgroup]
2026-08-28T15:28:28.7340470Z ##[group]Disabling automatic garbage collection
2026-08-28T15:28:28.7341616Z [command]/usr/bin/git config --local gc.auto 0
2026-08-28T15:28:28.7344037Z ##[endgroup]
2026-08-28T15:28:28.7345474Z ##[group]Setting up auth
2026-08-28T15:28:28.7346720Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-08-28T15:28:28.7351209Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-08-28T15:28:28.7607989Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-08-28T15:28:28.7758160Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-08-28T15:28:28.8020113Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-08-28T15:28:28.8063000Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-08-28T15:28:28.8326653Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic ***
2026-08-28T15:28:28.8370919Z ##[endgroup]
2026-08-28T15:28:28.8372441Z ##[group]Fetching the repository
2026-08-28T15:28:28.8381813Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +cc2b69028ee869fdec18e0f5cc1dc84c115cf6b9:refs/remotes/pull/56/merge
2026-08-28T15:28:30.0513851Z From https://github.com/Gamexgit/FinanceManager
2026-08-28T15:28:30.0521022Z  * [new ref]         cc2b69028ee869fdec18e0f5cc1dc84c115cf6b9 -> pull/56/merge
2026-08-28T15:28:30.0534705Z ##[endgroup]
2026-08-28T15:28:30.0536769Z ##[group]Determining the checkout info
2026-08-28T15:28:30.0539037Z ##[endgroup]
2026-08-28T15:28:30.0540867Z [command]/usr/bin/git sparse-checkout disable
2026-08-28T15:28:30.0583183Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig
2026-08-28T15:28:30.0621625Z ##[group]Checking out the ref
2026-08-28T15:28:30.0636965Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/56/merge
2026-08-28T15:28:30.1156847Z Note: switching to 'refs/remotes/pull/56/merge'.
2026-08-28T15:28:30.1158675Z 
2026-08-28T15:28:30.1159950Z You are in 'detached HEAD' state. You can look around, make experimental
2026-08-28T15:28:30.1163339Z changes and commit them, and you can discard any commits you make in this
2026-08-28T15:28:30.1166512Z state without impacting any branches by switching back to a branch.
2026-08-28T15:28:30.1168863Z 
2026-08-28T15:28:30.1170206Z If you want to create a new branch to retain commits you create, you may
2026-08-28T15:28:30.1173422Z do so (now or later) by using -c with the switch command. Example:
2026-08-28T15:28:30.1175421Z 
2026-08-28T15:28:30.1176277Z   git switch -c <new-branch-name>
2026-08-28T15:28:30.1177592Z 
2026-08-28T15:28:30.1178522Z Or undo this operation with:
2026-08-28T15:28:30.1179981Z 
2026-08-28T15:28:30.1181185Z   git switch -
2026-08-28T15:28:30.1182595Z 
2026-08-28T15:28:30.1184216Z Turn off this advice by setting config variable advice.detachedHead to false
2026-08-28T15:28:30.1186473Z 
2026-08-28T15:28:30.1189168Z HEAD is now at cc2b690 Merge 0f7a5b7ad9ec7f7c617ba1686ee4c27b3599fa47 into bef766b54576807f9963696202ada9bf32a98167
2026-08-28T15:28:30.1197297Z ##[endgroup]
2026-08-28T15:28:30.1237553Z [command]/usr/bin/git log -1 --format=%H
2026-08-28T15:28:30.1258884Z cc2b69028ee869fdec18e0f5cc1dc84c115cf6b9
2026-08-28T15:28:30.1686918Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-08-28T15:28:30.1693164Z ##[group]Run actions/setup-node@v4
2026-08-28T15:28:30.1694362Z with:
2026-08-28T15:28:30.1695240Z   node-version: 22
2026-08-28T15:28:30.1696188Z   cache: npm
2026-08-28T15:28:30.1697290Z   cache-dependency-path: frontend/package-lock.json
2026-08-28T15:28:30.1698705Z   always-auth: false
2026-08-28T15:28:30.1699732Z   check-latest: false
2026-08-28T15:28:30.1709811Z   token: ***
2026-08-28T15:28:30.1710921Z ##[endgroup]
2026-08-28T15:28:30.3401971Z Found in cache @ /opt/hostedtoolcache/node/22.23.2/x64
2026-08-28T15:28:30.3407031Z (node:2023) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
2026-08-28T15:28:30.3412894Z ##[group]Environment details
2026-08-28T15:28:30.3415713Z (Use `node --trace-deprecation ...` to show where the warning was created)
2026-08-28T15:28:31.0882483Z node: v22.23.2
2026-08-28T15:28:31.0883229Z npm: 10.9.8
2026-08-28T15:28:31.0883492Z yarn: 1.22.22
2026-08-28T15:28:31.0945069Z ##[endgroup]
2026-08-28T15:28:31.0945680Z [command]/opt/hostedtoolcache/node/22.23.2/x64/bin/npm config get cache
2026-08-28T15:28:31.2062384Z /home/runner/.npm
2026-08-28T15:28:31.4299515Z npm cache is not found
2026-08-28T15:28:31.4465199Z ##[group]Run npm ci
2026-08-28T15:28:31.4465550Z [36;1mnpm ci[0m
2026-08-28T15:28:31.4515019Z shell: /usr/bin/bash -e {0}
2026-08-28T15:28:31.4515330Z ##[endgroup]
2026-08-28T15:28:36.4088333Z npm warn deprecated glob@10.5.0: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
2026-08-28T15:28:40.9008008Z 
2026-08-28T15:28:40.9051702Z added 305 packages, and audited 306 packages in 9s
2026-08-28T15:28:40.9052499Z 
2026-08-28T15:28:40.9072864Z 74 packages are looking for funding
2026-08-28T15:28:40.9108530Z   run `npm fund` for details
2026-08-28T15:28:40.9139766Z 
2026-08-28T15:28:40.9171153Z 4 vulnerabilities (1 moderate, 3 high)
2026-08-28T15:28:40.9172800Z 
2026-08-28T15:28:40.9209511Z To address issues that do not require attention, run:
2026-08-28T15:28:40.9242304Z   npm audit fix
2026-08-28T15:28:40.9270808Z 
2026-08-28T15:28:40.9271109Z To address all issues, run:
2026-08-28T15:28:40.9271633Z   npm audit fix --force
2026-08-28T15:28:40.9271916Z 
2026-08-28T15:28:40.9272148Z Run `npm audit` for details.
2026-08-28T15:28:40.9838662Z ##[group]Run npm test
2026-08-28T15:28:40.9839126Z [36;1mnpm test[0m
2026-08-28T15:28:40.9892868Z shell: /usr/bin/bash -e {0}
2026-08-28T15:28:40.9893306Z ##[endgroup]
2026-08-28T15:28:41.1413793Z 
2026-08-28T15:28:41.1421817Z > jarvis-finance-dashboard-vue@0.0.0 test
2026-08-28T15:28:41.1451379Z > vitest run --environment jsdom
2026-08-28T15:28:41.1470657Z 
2026-08-28T15:28:41.7603424Z 
2026-08-28T15:28:41.7607835Z [1m[30m[46m RUN [49m[39m[22m [36mv4.1.6 [39m[90m/home/runner/work/FinanceManager/FinanceManager/frontend[39m
2026-08-28T15:28:41.7609159Z 
2026-08-28T15:28:46.3413258Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mrenders the canonical visual cockpit with reconciled KPIs, charts and drill-downs
2026-08-28T15:28:46.3415595Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:46.3430978Z   at <HouseholdTabs> 
2026-08-28T15:28:46.3471308Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:46.3490900Z   at <VTUROOT>
2026-08-28T15:28:46.3510753Z 
2026-08-28T15:28:46.7508381Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mexposes preset selection state and submits stable account IDs while displaying account names
2026-08-28T15:28:46.7536470Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:46.7601888Z   at <HouseholdTabs> 
2026-08-28T15:28:46.7631269Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:46.7670992Z   at <VTUROOT>
2026-08-28T15:28:46.7690673Z 
2026-08-28T15:28:47.0433246Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mcommits only the latest filter request when responses resolve out of order
2026-08-28T15:28:47.0522053Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:47.0561342Z   at <HouseholdTabs> 
2026-08-28T15:28:47.0629775Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:47.0711221Z   at <VTUROOT>
2026-08-28T15:28:47.0750885Z 
2026-08-28T15:28:47.2770183Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mrenders comparison none neutrally without fabricated KPI, category or chart deltas
2026-08-28T15:28:47.2792504Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:47.2851258Z   at <HouseholdTabs> 
2026-08-28T15:28:47.2861018Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:47.2890945Z   at <VTUROOT>
2026-08-28T15:28:47.2912235Z 
2026-08-28T15:28:47.4867220Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mrenders account-filtered budget scope as unavailable without progress or status claims
2026-08-28T15:28:47.4905855Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:47.4931048Z   at <HouseholdTabs> 
2026-08-28T15:28:47.4951165Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:47.4990861Z   at <VTUROOT>
2026-08-28T15:28:47.5050680Z 
2026-08-28T15:28:47.6630508Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2muses truthful empty states and does not mount an empty category chart
2026-08-28T15:28:47.6641441Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:47.6710967Z   at <HouseholdTabs> 
2026-08-28T15:28:47.6751340Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:47.6778696Z   at <VTUROOT>
2026-08-28T15:28:47.6800786Z 
2026-08-28T15:28:47.8515250Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mpersists the shared period, comparison and account filters in the URL
2026-08-28T15:28:47.8551704Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:47.8571003Z   at <HouseholdTabs> 
2026-08-28T15:28:47.8611789Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:47.8612475Z   at <VTUROOT>
2026-08-28T15:28:47.8630639Z 
2026-08-28T15:28:48.0359813Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mtreats a direct explicit date range as custom instead of relabeling it as the current month
2026-08-28T15:28:48.0391485Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:48.0392133Z   at <HouseholdTabs> 
2026-08-28T15:28:48.0392661Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:48.0393173Z   at <VTUROOT>
2026-08-28T15:28:48.0393419Z 
2026-08-28T15:28:48.2291403Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mshows partial-data and forecast transparency without inventing a result
2026-08-28T15:28:48.2301513Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:48.2341226Z   at <HouseholdTabs> 
2026-08-28T15:28:48.2381340Z   at <HouseholdOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:48.2390810Z   at <VTUROOT>
2026-08-28T15:28:48.2420748Z 
2026-08-28T15:28:48.4109375Z  [32m✓[39m src/components/performance/PortfolioPerformancePanel.test.ts [2m([22m[2m19 tests[22m[2m)[22m[33m 3210[2mms[22m[39m
2026-08-28T15:28:48.4132100Z      [33m[2m✓[22m[39m shows the five simple metrics and only one compact setup status [33m 415[2mms[22m[39m
2026-08-28T15:28:48.4151711Z      [33m[2m✓[22m[39m keeps setup collapsed and renders the True Wealth model as provisional without raw JSON [33m 316[2mms[22m[39m
2026-08-28T15:28:48.5037183Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2moffers all required transaction filters in a responsive card/list surface
2026-08-28T15:28:48.5039294Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:48.5065172Z   at <HouseholdTabs> 
2026-08-28T15:28:48.5081022Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:48.5100970Z   at <VTUROOT>
2026-08-28T15:28:48.5117099Z 
2026-08-28T15:28:48.6636912Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2minherits custom dates and all selected cockpit accounts in transaction drill-downs
2026-08-28T15:28:48.6691770Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:48.6710850Z   at <HouseholdTabs> 
2026-08-28T15:28:48.6731149Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:48.6773476Z   at <VTUROOT>
2026-08-28T15:28:48.6790714Z 
2026-08-28T15:28:48.8103068Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mrenders stored signed expenses with exactly one semantic minus
2026-08-28T15:28:48.8111464Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:48.8151023Z   at <HouseholdTabs> 
2026-08-28T15:28:48.8191166Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:48.8230972Z   at <VTUROOT>
2026-08-28T15:28:48.8250639Z 
2026-08-28T15:28:48.9409538Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mdistinguishes filtered transaction emptiness from API failures and global emptiness
2026-08-28T15:28:48.9431358Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:48.9432331Z   at <HouseholdTabs> 
2026-08-28T15:28:48.9451198Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:48.9451823Z   at <VTUROOT>
2026-08-28T15:28:48.9452050Z 
2026-08-28T15:28:49.0594400Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mdistinguishes filtered transaction emptiness from API failures and global emptiness
2026-08-28T15:28:49.0611562Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:49.0629436Z   at <HouseholdTabs> 
2026-08-28T15:28:49.0641573Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:49.0691205Z   at <VTUROOT>
2026-08-28T15:28:49.0710981Z 
2026-08-28T15:28:49.2342285Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2muses cursor pagination and keeps the true transaction totals visible
2026-08-28T15:28:49.2364467Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:49.2411191Z   at <HouseholdTabs> 
2026-08-28T15:28:49.2436825Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:49.2521024Z   at <VTUROOT>
2026-08-28T15:28:49.2584908Z 
2026-08-28T15:28:49.4313032Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mrestarts transaction pagination when the server rejects a stale snapshot cursor
2026-08-28T15:28:49.4331518Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:49.4350924Z   at <HouseholdTabs> 
2026-08-28T15:28:49.4351586Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:49.4352180Z   at <VTUROOT>
2026-08-28T15:28:49.4352461Z 
2026-08-28T15:28:49.6533231Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mdoes not rewrite the destination URL when a transaction request resolves after unmount
2026-08-28T15:28:49.6571498Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:49.6600997Z   at <HouseholdTabs> 
2026-08-28T15:28:49.6661206Z   at <HouseholdTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:49.6689472Z   at <VTUROOT>
2026-08-28T15:28:49.6700658Z 
2026-08-28T15:28:49.7747561Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mshows review success only for canonical zero and keeps filtered zero distinct
2026-08-28T15:28:49.7771569Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:49.7772516Z   at <HouseholdTabs> 
2026-08-28T15:28:49.7791141Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:49.7810989Z   at <VTUROOT>
2026-08-28T15:28:49.7830775Z 
2026-08-28T15:28:49.8876700Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mshows review success only for canonical zero and keeps filtered zero distinct
2026-08-28T15:28:49.8891412Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:49.8910992Z   at <HouseholdTabs> 
2026-08-28T15:28:49.8931026Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:49.8940821Z   at <VTUROOT>
2026-08-28T15:28:49.8950773Z 
2026-08-28T15:28:50.0492395Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mshows review success only for canonical zero and keeps filtered zero distinct
2026-08-28T15:28:50.0494673Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:50.0541199Z   at <HouseholdTabs> 
2026-08-28T15:28:50.0583470Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:50.0584937Z   at <VTUROOT>
2026-08-28T15:28:50.0660871Z 
2026-08-28T15:28:50.1962714Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2muses global review source facets and ignores responses from obsolete filters
2026-08-28T15:28:50.1964760Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:50.1980973Z   at <HouseholdTabs> 
2026-08-28T15:28:50.2000962Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:50.2020794Z   at <VTUROOT>
2026-08-28T15:28:50.2021203Z 
2026-08-28T15:28:50.4905531Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mrequests the server-side decision union and restarts a stale review cursor
2026-08-28T15:28:50.4931585Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:50.4932558Z   at <HouseholdTabs> 
2026-08-28T15:28:50.4951331Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:50.4970832Z   at <VTUROOT>
2026-08-28T15:28:50.4990711Z 
2026-08-28T15:28:50.6954940Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mhonors confirmability and offers only amount-compatible categories
2026-08-28T15:28:50.6981367Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:50.7048632Z   at <HouseholdTabs> 
2026-08-28T15:28:50.7151138Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:50.7210931Z   at <VTUROOT>
2026-08-28T15:28:50.7270559Z 
2026-08-28T15:28:50.8572856Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2muses the compact smart inbox and fingerprint-bound batch confirmation
2026-08-28T15:28:50.8611588Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:50.8640657Z   at <HouseholdTabs> 
2026-08-28T15:28:50.8681104Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:50.8686826Z   at <VTUROOT>
2026-08-28T15:28:50.8721197Z 
2026-08-28T15:28:51.1823911Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mnever submits selected rows hidden by the active tab or filters
2026-08-28T15:28:51.1887705Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:51.1941372Z   at <HouseholdTabs> 
2026-08-28T15:28:51.2021378Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:51.2070909Z   at <VTUROOT>
2026-08-28T15:28:51.2130613Z 
2026-08-28T15:28:51.2294893Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2muses the human-visible final preview for a single-row confirmation
2026-08-28T15:28:51.2344271Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:51.2393959Z   at <HouseholdTabs> 
2026-08-28T15:28:51.2454166Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:51.2457368Z   at <VTUROOT>
2026-08-28T15:28:51.2457856Z 
2026-08-28T15:28:51.5285036Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mchanges a normal review category inline and keeps details contextual and privacy-safe
2026-08-28T15:28:51.5288902Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:51.5311010Z   at <HouseholdTabs> 
2026-08-28T15:28:51.5331013Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:51.5340957Z   at <VTUROOT>
2026-08-28T15:28:51.5370856Z 
2026-08-28T15:28:51.7128625Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mbinds duplicate decisions to the loaded review snapshot and preview metadata
2026-08-28T15:28:51.7147923Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:51.7161027Z   at <HouseholdTabs> 
2026-08-28T15:28:51.7182667Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:51.7183439Z   at <VTUROOT>
2026-08-28T15:28:51.7183867Z 
2026-08-28T15:28:51.9682881Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mloads excluded duplicates through the audited reopen contract
2026-08-28T15:28:51.9711446Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:51.9730948Z   at <HouseholdTabs> 
2026-08-28T15:28:51.9751016Z   at <HouseholdReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:51.9770968Z   at <VTUROOT>
2026-08-28T15:28:51.9820682Z 
2026-08-28T15:28:52.1943069Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mreads CSV locally and sends the same input only for fingerprint-bound preview then confirm
2026-08-28T15:28:52.1959980Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:52.1997504Z   at <HouseholdTabs> 
2026-08-28T15:28:52.2020108Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:52.2081002Z   at <VTUROOT>
2026-08-28T15:28:52.2141230Z 
2026-08-28T15:28:52.4532209Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mcollects inline category drafts and confirms only the applied fingerprints
2026-08-28T15:28:52.4541427Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:52.4561077Z   at <HouseholdTabs> 
2026-08-28T15:28:52.4563322Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:52.4600963Z   at <VTUROOT>
2026-08-28T15:28:52.4620646Z 
2026-08-28T15:28:52.7615223Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mbinds explicit row confirmation to the selected category before economic confirm
2026-08-28T15:28:52.7631502Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:52.7632215Z   at <HouseholdTabs> 
2026-08-28T15:28:52.7632801Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:52.7633393Z   at <VTUROOT>
2026-08-28T15:28:52.7633713Z 
2026-08-28T15:28:53.1242721Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mregisters non-business-ready rows only as review candidates
2026-08-28T15:28:53.1281418Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:53.1320890Z   at <HouseholdTabs> 
2026-08-28T15:28:53.1381103Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:53.1420947Z   at <VTUROOT>
2026-08-28T15:28:53.1440634Z 
2026-08-28T15:28:53.3209943Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mkeeps the applied preview and local draft when applying decisions fails
2026-08-28T15:28:53.3232058Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:53.3270799Z   at <HouseholdTabs> 
2026-08-28T15:28:53.3301116Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:53.3312489Z   at <VTUROOT>
2026-08-28T15:28:53.3313047Z 
2026-08-28T15:28:53.5643159Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mrenders explicit draft removals and omits removed applied decisions on Apply
2026-08-28T15:28:53.5670138Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:53.5671374Z   at <HouseholdTabs> 
2026-08-28T15:28:53.5672103Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:53.5672806Z   at <VTUROOT>
2026-08-28T15:28:53.5673246Z 
2026-08-28T15:28:53.8343416Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mbinds merchant-cluster decisions, row exclusions, unmatched-transfer decisions and business readiness
2026-08-28T15:28:53.8363480Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:53.8371219Z   at <HouseholdTabs> 
2026-08-28T15:28:53.8391191Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:53.8400895Z   at <VTUROOT>
2026-08-28T15:28:53.8410923Z 
2026-08-28T15:28:54.4467179Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mbuilds one fingerprint-bound request from four replaceable source files
2026-08-28T15:28:54.4750003Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:54.4811083Z   at <HouseholdTabs> 
2026-08-28T15:28:54.5032358Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:54.5321498Z   at <VTUROOT>
2026-08-28T15:28:54.5380700Z 
2026-08-28T15:28:54.7037775Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mkeeps proposals inspectable and returns excluded cluster outliers to the individual inbox
2026-08-28T15:28:54.7267956Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:54.7268663Z   at <HouseholdTabs> 
2026-08-28T15:28:54.7291403Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:54.7301049Z   at <VTUROOT>
2026-08-28T15:28:54.7304981Z 
2026-08-28T15:28:54.8993947Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mdiscards an in-flight preview response after its local input binding changes
2026-08-28T15:28:54.8996090Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:54.9212264Z   at <HouseholdTabs> 
2026-08-28T15:28:54.9213450Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:54.9421994Z   at <VTUROOT>
2026-08-28T15:28:54.9422769Z 
2026-08-28T15:28:55.0692461Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2minvalidates the old confirmable preview as soon as replacement file reading starts
2026-08-28T15:28:55.0700105Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:55.0701081Z   at <HouseholdTabs> 
2026-08-28T15:28:55.0701616Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:55.0740785Z   at <VTUROOT>
2026-08-28T15:28:55.0741034Z 
2026-08-28T15:28:55.2683889Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mkeeps a failed replacement empty and enforces the aggregate request limit
2026-08-28T15:28:55.2686224Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:55.2932264Z   at <HouseholdTabs> 
2026-08-28T15:28:55.2933364Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:55.3172094Z   at <VTUROOT>
2026-08-28T15:28:55.3172947Z 
2026-08-28T15:28:55.4236888Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mresets decision pagination after applying a bound category draft
2026-08-28T15:28:55.4239233Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:55.4522125Z   at <HouseholdTabs> 
2026-08-28T15:28:55.4523306Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:55.4721974Z   at <VTUROOT>
2026-08-28T15:28:55.4722653Z 
2026-08-28T15:28:55.6849911Z [90mstderr[2m | src/pages/HouseholdUx.test.ts[2m > [22m[2mSprint 15 household UX[2m > [22m[2mdiscards a stale file-reader completion after a newer replacement wins
2026-08-28T15:28:55.6852583Z  [32m✓[39m src/pages/HouseholdUx.test.ts [2m([22m[2m41 tests[22m[2m)[22m[33m 9780[2mms[22m[39m
2026-08-28T15:28:55.6863410Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:28:55.6865004Z      [33m[2m✓[22m[39m renders the canonical visual cockpit with reconciled KPIs, charts and drill-downs [33m 643[2mms[22m[39m
2026-08-28T15:28:55.7272252Z   at <HouseholdTabs> 
2026-08-28T15:28:55.7274094Z      [33m[2m✓[22m[39m exposes preset selection state and submits stable account IDs while displaying account names [33m 306[2mms[22m[39m
2026-08-28T15:28:55.7300951Z   at <HouseholdImportsPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:55.7302544Z      [33m[2m✓[22m[39m shows review success only for canonical zero and keeps filtered zero distinct [33m 415[2mms[22m[39m
2026-08-28T15:28:55.7652283Z   at <VTUROOT>
2026-08-28T15:28:55.7653855Z      [33m[2m✓[22m[39m uses the compact smart inbox and fingerprint-bound batch confirmation [33m 341[2mms[22m[39m
2026-08-28T15:28:55.7654706Z 
2026-08-28T15:28:55.7671861Z      [33m[2m✓[22m[39m collects inline category drafts and confirms only the applied fingerprints [33m 305[2mms[22m[39m
2026-08-28T15:28:55.7953268Z      [33m[2m✓[22m[39m binds explicit row confirmation to the selected category before economic confirm [33m 366[2mms[22m[39m
2026-08-28T15:28:55.7956099Z      [33m[2m✓[22m[39m binds merchant-cluster decisions, row exclusions, unmatched-transfer decisions and business readiness [33m 538[2mms[22m[39m
2026-08-28T15:28:56.7662780Z [90mstderr[2m | src/pages/BudgetUxV2.test.ts[2m > [22m[2mBudget UX v2[2m > [22m[2mshows simplified category buckets and merge preview section
2026-08-28T15:28:56.7691478Z [22m[39m[Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:28:56.7712297Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:28:56.7730863Z   at <HouseholdTabs> 
2026-08-28T15:28:56.7771002Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:28:56.7790839Z   at <VTUROOT>
2026-08-28T15:28:56.7810814Z 
2026-08-28T15:28:56.9682400Z  [32m✓[39m src/pages/BudgetUxV2.test.ts [2m([22m[2m10 tests[22m[2m)[22m[33m 5034[2mms[22m[39m
2026-08-28T15:28:56.9688713Z      [33m[2m✓[22m[39m opens confirmed expenses only through the safe transaction-token drawer [33m 1093[2mms[22m[39m
2026-08-28T15:28:56.9729141Z      [33m[2m✓[22m[39m shows review candidates without technical user-mode fields [33m 1125[2mms[22m[39m
2026-08-28T15:28:56.9765934Z      [33m[2m✓[22m[39m uses ConfirmDialog and success Toast for risky review confirm actions [33m 938[2mms[22m[39m
2026-08-28T15:28:56.9768104Z      [33m[2m✓[22m[39m renders category analysis and links category drilldown to data explorer [33m 614[2mms[22m[39m
2026-08-28T15:28:56.9770704Z      [33m[2m✓[22m[39m keeps budget vs actual separated from import review and based on budget status rows [33m 323[2mms[22m[39m
2026-08-28T15:28:59.9502304Z  [32m✓[39m src/pages/CryptoPage.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 1246[2mms[22m[39m
2026-08-28T15:28:59.9506251Z      [33m[2m✓[22m[39m auto-loads crypto positions and opens detail drawer from a row click [33m 568[2mms[22m[39m
2026-08-28T15:29:00.5846490Z [90mstderr[2m | src/pages/BudgetPhase1.test.ts[2m > [22m[2mBudget Phase 1 Vue UI[2m > [22m[2mrenders Budget Overview with current month KPIs and latest transactions
2026-08-28T15:29:00.5861528Z [22m[39m[Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:00.5871733Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:00.5888952Z   at <BudgetOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:00.5900962Z   at <VTUROOT>
2026-08-28T15:29:00.5930988Z 
2026-08-28T15:29:00.6823693Z [90mstderr[2m | src/pages/BudgetPhase1.test.ts[2m > [22m[2mBudget Phase 1 Vue UI[2m > [22m[2mrenders Budget Overview with current month KPIs and latest transactions
2026-08-28T15:29:00.6825736Z [22m[39m[Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:00.6841771Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:00.6861117Z   at <BudgetOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:00.6880932Z   at <VTUROOT>
2026-08-28T15:29:00.6890629Z 
2026-08-28T15:29:01.4740127Z [90mstderr[2m | src/pages/BudgetPhase1.test.ts[2m > [22m[2mBudget Phase 1 Vue UI[2m > [22m[2mrenders transactions workflow and confirms via API after preview summary
2026-08-28T15:29:01.4771115Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:01.4791031Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:01.4791671Z   at <VTUROOT>
2026-08-28T15:29:01.4811473Z [Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:01.4812214Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:01.4812798Z   at <VTUROOT>
2026-08-28T15:29:01.4813463Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:01.4814221Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:01.4814800Z   at <VTUROOT>
2026-08-28T15:29:01.4815048Z 
2026-08-28T15:29:01.9082799Z [90mstderr[2m | src/pages/BudgetPhase1.test.ts[2m > [22m[2mBudget Phase 1 Vue UI[2m > [22m[2msupports category preview confirm workflows without exposing raw IDs
2026-08-28T15:29:01.9101339Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:01.9101985Z   at <HouseholdTabs> 
2026-08-28T15:29:01.9102485Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:01.9102997Z   at <VTUROOT>
2026-08-28T15:29:01.9103950Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:01.9105236Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:01.9106205Z   at <HouseholdTabs> 
2026-08-28T15:29:01.9106866Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:01.9107369Z   at <VTUROOT>
2026-08-28T15:29:01.9107618Z 
2026-08-28T15:29:02.1443055Z [90mstderr[2m | src/pages/BudgetPhase1.test.ts[2m > [22m[2mBudget Phase 1 Vue UI[2m > [22m[2mopens the zero-based category chart and month drilldown with a household transaction list
2026-08-28T15:29:02.1481463Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:02.1520888Z   at <HouseholdTabs> 
2026-08-28T15:29:02.1561017Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:02.1580889Z   at <VTUROOT>
2026-08-28T15:29:02.1620825Z 
2026-08-28T15:29:02.3429554Z [90mstderr[2m | src/pages/BudgetPhase1.test.ts[2m > [22m[2mBudget Phase 1 Vue UI[2m > [22m[2mkeeps zero months at zero and omits the budget line when a category is not budgeted
2026-08-28T15:29:02.3431671Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:02.3437929Z   at <HouseholdTabs> 
2026-08-28T15:29:02.3438655Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:02.3439850Z   at <VTUROOT>
2026-08-28T15:29:02.3444697Z  [32m✓[39m src/pages/BudgetPhase1.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m 2607[2mms[22m[39m
2026-08-28T15:29:02.3445761Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:02.3447046Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:02.3448017Z   at <HouseholdTabs> 
2026-08-28T15:29:02.3448510Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:02.3448924Z   at <VTUROOT>
2026-08-28T15:29:02.3449062Z 
2026-08-28T15:29:02.3454956Z      [33m[2m✓[22m[39m renders Budget Overview with current month KPIs and latest transactions [33m 904[2mms[22m[39m
2026-08-28T15:29:02.3491817Z      [33m[2m✓[22m[39m renders transactions workflow and confirms via API after preview summary [33m 843[2mms[22m[39m
2026-08-28T15:29:03.1715359Z  [32m✓[39m src/components/portfolio-data/DataIngestionReconciliationPanel.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 765[2mms[22m[39m
2026-08-28T15:29:05.2903395Z [90mstderr[2m | src/pages/BudgetAnalyticsDashboardV2.test.ts[2m > [22m[2mBudget Analytics & Dashboard v2[2m > [22m[2mrenders Budget Übersicht as monthly cockpit, not category status table
2026-08-28T15:29:05.2921755Z [22m[39m[Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:05.2961783Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:05.2988630Z   at <BudgetOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:05.3042430Z   at <VTUROOT>
2026-08-28T15:29:05.3061135Z 
2026-08-28T15:29:05.4747924Z [90mstderr[2m | src/pages/BudgetAnalyticsDashboardV2.test.ts[2m > [22m[2mBudget Analytics & Dashboard v2[2m > [22m[2mrenders Budget Übersicht as monthly cockpit, not category status table
2026-08-28T15:29:05.4768820Z [22m[39m[Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:05.4791862Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:05.4793268Z   at <BudgetOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:05.4811085Z   at <VTUROOT>
2026-08-28T15:29:05.4830920Z 
2026-08-28T15:29:06.2293480Z [90mstderr[2m | src/pages/BudgetAnalyticsDashboardV2.test.ts[2m > [22m[2mBudget Analytics & Dashboard v2[2m > [22m[2mshows financial quality warnings instead of presenting partial zeroes as complete
2026-08-28T15:29:06.2331560Z [22m[39m[Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:06.2406288Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:06.2449197Z   at <BudgetOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:06.2470978Z   at <VTUROOT>
2026-08-28T15:29:06.2490657Z 
2026-08-28T15:29:06.3443387Z [90mstderr[2m | src/pages/BudgetAnalyticsDashboardV2.test.ts[2m > [22m[2mBudget Analytics & Dashboard v2[2m > [22m[2mshows financial quality warnings instead of presenting partial zeroes as complete
2026-08-28T15:29:06.3448107Z [22m[39m[Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:06.3478253Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:06.3479578Z   at <BudgetOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:06.3519733Z   at <VTUROOT>
2026-08-28T15:29:06.3538311Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:06.3541857Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:06.3543312Z   at <BudgetOverviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:06.3567359Z   at <VTUROOT>
2026-08-28T15:29:06.3585737Z 
2026-08-28T15:29:06.3860938Z [90mstderr[2m | src/pages/BudgetAnalyticsDashboardV2.test.ts[2m > [22m[2mBudget Analytics & Dashboard v2[2m > [22m[2mshows financial quality warnings instead of presenting partial zeroes as complete
2026-08-28T15:29:06.3863342Z [22m[39mFailed to create chart: can't acquire context from the given item
2026-08-28T15:29:06.3890667Z 
2026-08-28T15:29:07.0606879Z [90mstderr[2m | src/pages/BudgetAnalyticsDashboardV2.test.ts[2m > [22m[2mBudget Analytics & Dashboard v2[2m > [22m[2mshows financial quality warnings instead of presenting partial zeroes as complete
2026-08-28T15:29:07.0621539Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:07.0637304Z   at <HouseholdTabs> 
2026-08-28T15:29:07.0639905Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:07.0701203Z   at <VTUROOT>
2026-08-28T15:29:07.0731550Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:07.0787713Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:07.0866279Z   at <HouseholdTabs> 
2026-08-28T15:29:07.0867016Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:07.0867522Z   at <VTUROOT>
2026-08-28T15:29:07.0867722Z 
2026-08-28T15:29:07.2313214Z [90mstderr[2m | src/pages/BudgetAnalyticsDashboardV2.test.ts[2m > [22m[2mBudget Analytics & Dashboard v2[2m > [22m[2mrenders Budgetstatus as operational category control with row-click monthly chart
2026-08-28T15:29:07.2331588Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:07.2350840Z   at <HouseholdTabs> 
2026-08-28T15:29:07.2351458Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:07.2410992Z   at <VTUROOT>
2026-08-28T15:29:07.2851901Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:07.2905976Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:07.3195610Z   at <HouseholdTabs> 
2026-08-28T15:29:07.3230996Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:07.3431551Z   at <VTUROOT>
2026-08-28T15:29:07.3691179Z 
2026-08-28T15:29:07.4242881Z  [32m✓[39m src/pages/PortfolioPage.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 1208[2mms[22m[39m
2026-08-28T15:29:07.4425945Z      [33m[2m✓[22m[39m shows the simplified modelled cockpit without trading UI [33m 650[2mms[22m[39m
2026-08-28T15:29:07.7876817Z  [32m✓[39m src/pages/BudgetAnalyticsDashboardV2.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 3239[2mms[22m[39m
2026-08-28T15:29:07.8062873Z      [33m[2m✓[22m[39m renders Budget Übersicht as monthly cockpit, not category status table [33m 1236[2mms[22m[39m
2026-08-28T15:29:07.8065423Z      [33m[2m✓[22m[39m shows financial quality warnings instead of presenting partial zeroes as complete [33m 1365[2mms[22m[39m
2026-08-28T15:29:07.8091922Z      [33m[2m✓[22m[39m renders Budget vs Ist as analysis page with distinct charts and top deviations [33m 459[2mms[22m[39m
2026-08-28T15:29:11.3519309Z [90mstderr[2m | src/pages/BudgetImportProductionV2.test.ts[2m > [22m[2mBudget Import Production v2 review UI[2m > [22m[2mshows source-aware review tabs and candidate type actions
2026-08-28T15:29:11.3521803Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:11.3601291Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:11.3660925Z   at <VTUROOT>
2026-08-28T15:29:11.3701293Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:11.3721081Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:11.3771114Z   at <VTUROOT>
2026-08-28T15:29:11.3901368Z 
2026-08-28T15:29:11.6718766Z  [32m✓[39m src/pages/VueCockpitV11.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m 1603[2mms[22m[39m
2026-08-28T15:29:11.6741818Z      [33m[2m✓[22m[39m supports equity search, visible Zusammenfassung prüfen review and final confirm [33m 364[2mms[22m[39m
2026-08-28T15:29:11.6752293Z      [33m[2m✓[22m[39m opens equity detail drawer with explicit market-data controls and no unfinished trading actions [33m 650[2mms[22m[39m
2026-08-28T15:29:12.5244288Z [90mstderr[2m | src/pages/BudgetImportProductionV2.test.ts[2m > [22m[2mBudget Import Production v2 review UI[2m > [22m[2mmarks a candidate as credit card payment through audited type action
2026-08-28T15:29:12.5262646Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:12.5281344Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:12.5290886Z   at <VTUROOT>
2026-08-28T15:29:12.5311129Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:12.5321141Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:12.5321789Z   at <VTUROOT>
2026-08-28T15:29:12.5322032Z 
2026-08-28T15:29:13.7493556Z [90mstderr[2m | src/pages/BudgetImportProductionV2.test.ts[2m > [22m[2mBudget Import Production v2 review UI[2m > [22m[2mshows bulk toolbar state, applies category to selected candidates, and keeps partial feedback visible
2026-08-28T15:29:13.7515505Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:13.7575052Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:13.7681149Z   at <VTUROOT>
2026-08-28T15:29:13.7721460Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:13.7761020Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:13.7820952Z   at <VTUROOT>
2026-08-28T15:29:13.7860673Z 
2026-08-28T15:29:15.0233395Z [90mstderr[2m | src/pages/BudgetImportProductionV2.test.ts[2m > [22m[2mBudget Import Production v2 review UI[2m > [22m[2mopens bulk confirm preview dialog and disables final confirm when blockers exist
2026-08-28T15:29:15.0251655Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:15.0281352Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:15.0311220Z   at <VTUROOT>
2026-08-28T15:29:15.0331473Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:15.0371150Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:15.0391014Z   at <VTUROOT>
2026-08-28T15:29:15.0416019Z 
2026-08-28T15:29:15.3472617Z  [32m✓[39m src/pages/BudgetIncomePage.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m 1321[2mms[22m[39m
2026-08-28T15:29:15.3476721Z      [33m[2m✓[22m[39m shows tabs, household summary, empty editable ERNE template and mobile cards [33m 411[2mms[22m[39m
2026-08-28T15:29:16.1300724Z [90mstderr[2m | src/pages/BudgetImportProductionV2.test.ts[2m > [22m[2mBudget Import Production v2 review UI[2m > [22m[2mkeeps duplicate candidates out of normal confirm actions and shows duplicate review actions only
2026-08-28T15:29:16.1303853Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:16.1321224Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:16.1340971Z   at <VTUROOT>
2026-08-28T15:29:16.1381306Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:16.1401020Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:16.1412128Z   at <VTUROOT>
2026-08-28T15:29:16.1430743Z 
2026-08-28T15:29:17.2003270Z [90mstderr[2m | src/pages/BudgetImportProductionV2.test.ts[2m > [22m[2mBudget Import Production v2 review UI[2m > [22m[2mrequires a reason and calls the duplicate override endpoint explicitly
2026-08-28T15:29:17.2005611Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:17.2021052Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:17.2040875Z   at <VTUROOT>
2026-08-28T15:29:17.2041821Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:17.2061148Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:17.2080876Z   at <VTUROOT>
2026-08-28T15:29:17.2100776Z 
2026-08-28T15:29:18.5178180Z  [32m✓[39m src/pages/PositionAddPage.test.ts [2m([22m[2m5 tests[22m[2m)[22m[33m 981[2mms[22m[39m
2026-08-28T15:29:18.5211984Z      [33m[2m✓[22m[39m renders a clear seven-step PrimeVue-style wizard shell before provider actions [33m 318[2mms[22m[39m
2026-08-28T15:29:18.5753676Z [90mstderr[2m | src/pages/BudgetImportProductionV2.test.ts[2m > [22m[2mBudget Import Production v2 review UI[2m > [22m[2mrenders both sides as one transfer pair and confirms only the pair contract
2026-08-28T15:29:18.5761491Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:18.5781218Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:18.5782567Z   at <VTUROOT>
2026-08-28T15:29:18.5821276Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:18.5822501Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:18.5840988Z   at <VTUROOT>
2026-08-28T15:29:18.5860640Z 
2026-08-28T15:29:19.0835295Z  [32m✓[39m src/pages/BudgetImportProductionV2.test.ts [2m([22m[2m7 tests[22m[2m)[22m[33m 8985[2mms[22m[39m
2026-08-28T15:29:19.0861932Z      [33m[2m✓[22m[39m shows source-aware review tabs and candidate type actions [33m 1663[2mms[22m[39m
2026-08-28T15:29:19.0897974Z      [33m[2m✓[22m[39m marks a candidate as credit card payment through audited type action [33m 1158[2mms[22m[39m
2026-08-28T15:29:19.0912075Z      [33m[2m✓[22m[39m shows bulk toolbar state, applies category to selected candidates, and keeps partial feedback visible [33m 1306[2mms[22m[39m
2026-08-28T15:29:19.0921699Z      [33m[2m✓[22m[39m opens bulk confirm preview dialog and disables final confirm when blockers exist [33m 1349[2mms[22m[39m
2026-08-28T15:29:19.0923561Z      [33m[2m✓[22m[39m keeps duplicate candidates out of normal confirm actions and shows duplicate review actions only [33m 1046[2mms[22m[39m
2026-08-28T15:29:19.0925298Z      [33m[2m✓[22m[39m requires a reason and calls the duplicate override endpoint explicitly [33m 1368[2mms[22m[39m
2026-08-28T15:29:19.0926942Z      [33m[2m✓[22m[39m renders both sides as one transfer pair and confirms only the pair contract [33m 1092[2mms[22m[39m
2026-08-28T15:29:21.8332292Z  [32m✓[39m src/pages/BudgetPlanningPage.test.ts [2m([22m[2m5 tests[22m[2m)[22m[33m 1094[2mms[22m[39m
2026-08-28T15:29:21.8351824Z      [33m[2m✓[22m[39m uses 2025 by default and distinguishes missing from confirmed zero [33m 521[2mms[22m[39m
2026-08-28T15:29:22.2652715Z [90mstderr[2m | src/pages/MobileUx.test.ts[2m > [22m[2mVue mobile UX v1[2m > [22m[2muses mobile-safe layout shell padding and bottom nav space
2026-08-28T15:29:22.2691624Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:22.2692406Z   at <AppLayout ref="VTU_COMPONENT" > 
2026-08-28T15:29:22.2730870Z   at <VTUROOT>
2026-08-28T15:29:22.2761244Z 
2026-08-28T15:29:22.4313012Z [90mstderr[2m | src/pages/MobileUx.test.ts[2m > [22m[2mVue mobile UX v1[2m > [22m[2mrenders Budgetstatus mobile cards without long decimals or technical IDs
2026-08-28T15:29:22.4542456Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:22.4560993Z   at <HouseholdTabs> 
2026-08-28T15:29:22.4631585Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:22.4690804Z   at <VTUROOT>
2026-08-28T15:29:22.4746498Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:22.4747937Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:22.4972027Z   at <HouseholdTabs> 
2026-08-28T15:29:22.5286359Z   at <BudgetStatusPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:22.5512045Z   at <VTUROOT>
2026-08-28T15:29:22.5576113Z 
2026-08-28T15:29:23.0916968Z [90mstderr[2m | src/pages/MobileUx.test.ts[2m > [22m[2mVue mobile UX v1[2m > [22m[2mrenders mobile expense cards and non-clickable coming-soon receipt hints
2026-08-28T15:29:23.1103088Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:23.1282144Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:23.1282874Z   at <VTUROOT>
2026-08-28T15:29:23.1532261Z [Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:23.1742380Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:23.2002311Z   at <VTUROOT>
2026-08-28T15:29:23.2251883Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:23.2562343Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:23.2682097Z   at <VTUROOT>
2026-08-28T15:29:23.2689904Z 
2026-08-28T15:29:23.3391863Z  [31m❯[39m src/pages/MobileUx.test.ts [2m([22m[2m5 tests[22m[2m | [22m[31m1 failed[39m[2m)[22m[33m 1736[2mms[22m[39m
2026-08-28T15:29:23.3765365Z      [32m✓[39m keeps desktop sidebar but exposes the four compact mobile areas[32m 281[2mms[22m[39m
2026-08-28T15:29:23.3767683Z      [33m[2m✓[22m[39m uses mobile-safe layout shell padding and bottom nav space [33m 393[2mms[22m[39m
2026-08-28T15:29:23.4023068Z      [32m✓[39m renders Budgetstatus mobile cards without long decimals or technical IDs[32m 189[2mms[22m[39m
2026-08-28T15:29:23.4025282Z      [33m[2m✓[22m[39m renders mobile expense cards and non-clickable coming-soon receipt hints [33m 782[2mms[22m[39m
2026-08-28T15:29:23.4203830Z [31m     [31m×[31m renders crypto and equity mobile cards with table fallback hidden on small screens[39m[32m 87[2mms[22m[39m
2026-08-28T15:29:24.8641370Z  [32m✓[39m src/components/wealth/WealthCockpitPanel.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 869[2mms[22m[39m
2026-08-28T15:29:24.8681942Z      [33m[2m✓[22m[39m shows the model chart with two points while verified performance remains blocked [33m 600[2mms[22m[39m
2026-08-28T15:29:26.9832665Z  [32m✓[39m src/pages/ReadOnlySurfaces.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 1117[2mms[22m[39m
2026-08-28T15:29:26.9852264Z      [33m[2m✓[22m[39m Portfolio page auto-loads the read-only wealth cockpit without trading surfaces [33m 669[2mms[22m[39m
2026-08-28T15:29:28.0007603Z  [32m✓[39m src/components/policy/PortfolioPolicyManager.test.ts [2m([22m[2m5 tests[22m[2m)[22m[33m 847[2mms[22m[39m
2026-08-28T15:29:28.0032079Z      [33m[2m✓[22m[39m forwards preview identifiers and the displayed payload unchanged [33m 387[2mms[22m[39m
2026-08-28T15:29:29.7655818Z  [32m✓[39m src/pages/CashTrueWealthManagement.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 647[2mms[22m[39m
2026-08-28T15:29:31.5633317Z  [32m✓[39m src/pages/PostFinancePage.test.ts [2m([22m[2m5 tests[22m[2m)[22m[33m 1003[2mms[22m[39m
2026-08-28T15:29:33.2722376Z  [32m✓[39m src/pages/EquitySprint11.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 1298[2mms[22m[39m
2026-08-28T15:29:33.2772834Z      [33m[2m✓[22m[39m shows all 22 positions, honest partial value and all 14 missing rows without provider calls on render [33m 474[2mms[22m[39m
2026-08-28T15:29:33.2802004Z      [33m[2m✓[22m[39m separates view reload, full-refresh dry-run, bound apply and per-position refresh dates [33m 441[2mms[22m[39m
2026-08-28T15:29:34.6036731Z  [32m✓[39m src/pages/BudgetGroceryOptimizerPage.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 571[2mms[22m[39m
2026-08-28T15:29:36.9971977Z  [32m✓[39m src/api/household.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 20[2mms[22m[39m
2026-08-28T15:29:37.0756963Z [90mstderr[2m | src/pages/BudgetWorkflowHelpUx.test.ts[2m > [22m[2mBudget Workflow Clarification & Help UX[2m > [22m[2mrenders effective expenses with Geldfluss columns and confirmed-only empty state text
2026-08-28T15:29:37.0781599Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:37.0811370Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:37.0851057Z   at <VTUROOT>
2026-08-28T15:29:37.0894516Z [Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:37.0911128Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:37.0914242Z   at <VTUROOT>
2026-08-28T15:29:37.0931282Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:37.0951272Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:37.0970988Z   at <VTUROOT>
2026-08-28T15:29:37.0990629Z 
2026-08-28T15:29:37.7563458Z [90mstderr[2m | src/pages/BudgetWorkflowHelpUx.test.ts[2m > [22m[2mBudget Workflow Clarification & Help UX[2m > [22m[2mrenders effective expenses with Geldfluss columns and confirmed-only empty state text
2026-08-28T15:29:37.7591503Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:37.7611027Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:37.7631060Z   at <VTUROOT>
2026-08-28T15:29:37.7641156Z [Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:37.7659320Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:37.7680938Z   at <VTUROOT>
2026-08-28T15:29:37.7701208Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:37.7711117Z   at <BudgetTransactionsPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:37.7733496Z   at <VTUROOT>
2026-08-28T15:29:37.7750681Z 
2026-08-28T15:29:38.7203304Z [90mstderr[2m | src/pages/BudgetWorkflowHelpUx.test.ts[2m > [22m[2mBudget Workflow Clarification & Help UX[2m > [22m[2mrenders transfer review explanations including True Wealth target and non-budget effect
2026-08-28T15:29:38.7205558Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:38.7241231Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:38.7280933Z   at <VTUROOT>
2026-08-28T15:29:38.7301268Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:38.7321077Z   at <BudgetImportReviewPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:38.7361033Z   at <VTUROOT>
2026-08-28T15:29:38.7380894Z 
2026-08-28T15:29:39.4104151Z [90mstderr[2m | src/pages/BudgetWorkflowHelpUx.test.ts[2m > [22m[2mBudget Workflow Clarification & Help UX[2m > [22m[2mrenders transfer list with from/to accounts
2026-08-28T15:29:39.4151721Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:39.4421944Z   at <HouseholdTabs> 
2026-08-28T15:29:39.4441093Z   at <BudgetTransfersPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:39.4732164Z   at <VTUROOT>
2026-08-28T15:29:39.4742087Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:39.4932748Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:39.5117061Z   at <HouseholdTabs> 
2026-08-28T15:29:39.5292265Z   at <BudgetTransfersPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:39.5541659Z   at <VTUROOT>
2026-08-28T15:29:39.5560799Z 
2026-08-28T15:29:39.6070203Z [90mstderr[2m | src/pages/BudgetWorkflowHelpUx.test.ts[2m > [22m[2mBudget Workflow Clarification & Help UX[2m > [22m[2mcentral help text covers purpose actions exclusions and opens from app shell
2026-08-28T15:29:39.6072510Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:39.6299393Z   at <AppLayout ref="VTU_COMPONENT" > 
2026-08-28T15:29:39.6301665Z  [32m✓[39m src/pages/BudgetWorkflowHelpUx.test.ts [2m([22m[2m5 tests[22m[2m)[22m[33m 3876[2mms[22m[39m
2026-08-28T15:29:39.6302805Z   at <VTUROOT>
2026-08-28T15:29:39.6304021Z      [33m[2m✓[22m[39m keeps the household sidebar consolidated without duplicate child menus [33m 364[2mms[22m[39m
2026-08-28T15:29:39.6541032Z 
2026-08-28T15:29:39.6542717Z      [33m[2m✓[22m[39m renders effective expenses with Geldfluss columns and confirmed-only empty state text [33m 1745[2mms[22m[39m
2026-08-28T15:29:39.6692523Z      [33m[2m✓[22m[39m renders transfer review explanations including True Wealth target and non-budget effect [33m 1103[2mms[22m[39m
2026-08-28T15:29:39.6741643Z      [33m[2m✓[22m[39m renders transfer list with from/to accounts [33m 512[2mms[22m[39m
2026-08-28T15:29:40.0803378Z  [32m✓[39m src/pages/EquityPageHotfix.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 722[2mms[22m[39m
2026-08-28T15:29:40.1073248Z      [33m[2m✓[22m[39m shows separate single equity, TrueWealth and Cash sections without mixing TrueWealth positions [33m 363[2mms[22m[39m
2026-08-28T15:29:42.2279013Z [90mstderr[2m | src/pages/BudgetRecurringPage.test.ts[2m > [22m[2mBudgetRecurringPage Sprint 17D[2m > [22m[2mshows editable candidate semantics and one understandable notice card without raw confidence
2026-08-28T15:29:42.2301415Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:42.2320965Z   at <HouseholdTabs> 
2026-08-28T15:29:42.2341051Z   at <BudgetRecurringPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:42.2341738Z   at <VTUROOT>
2026-08-28T15:29:42.2360777Z 
2026-08-28T15:29:42.4418400Z [90mstderr[2m | src/pages/BudgetRecurringPage.test.ts[2m > [22m[2mBudgetRecurringPage Sprint 17D[2m > [22m[2mrecalculates edited cadence immediately and keeps preview separate from confirm
2026-08-28T15:29:42.4441463Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:42.4460944Z   at <HouseholdTabs> 
2026-08-28T15:29:42.4481082Z   at <BudgetRecurringPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:42.4481854Z   at <VTUROOT>
2026-08-28T15:29:42.4500824Z 
2026-08-28T15:29:42.4841609Z  [32m✓[39m src/pages/BudgetRecurringPage.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 655[2mms[22m[39m
2026-08-28T15:29:42.4843909Z      [33m[2m✓[22m[39m shows editable candidate semantics and one understandable notice card without raw confidence [33m 462[2mms[22m[39m
2026-08-28T15:29:42.9407069Z  [32m✓[39m src/components/wealth/WealthDevelopmentChart.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 670[2mms[22m[39m
2026-08-28T15:29:42.9419033Z      [33m[2m✓[22m[39m keeps history solid and dashes only points after the confirmed anchor [33m 323[2mms[22m[39m
2026-08-28T15:29:45.6155720Z  [32m✓[39m src/pages/GroceryMatchingLearningV2.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 517[2mms[22m[39m
2026-08-28T15:29:45.6157915Z      [33m[2m✓[22m[39m shows known mappings, cache status and review actions [33m 332[2mms[22m[39m
2026-08-28T15:29:45.9130778Z  [32m✓[39m src/pages/GlobalPrimeVueMigration.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m 536[2mms[22m[39m
2026-08-28T15:29:45.9191936Z      [33m[2m✓[22m[39m provides reusable shared PrimeVue UI building blocks [33m 524[2mms[22m[39m
2026-08-28T15:29:47.7382241Z  [32m✓[39m src/stores/budgetStores.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 17[2mms[22m[39m
2026-08-28T15:29:48.9261190Z  [32m✓[39m src/pages/CommandCenter.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 753[2mms[22m[39m
2026-08-28T15:29:48.9282826Z      [33m[2m✓[22m[39m renders four compact areas, one household forecast hint and grouped review impact [33m 358[2mms[22m[39m
2026-08-28T15:29:51.1632729Z [90mstderr[2m | src/pages/DataExplorerPage.test.ts[2m > [22m[2mDataExplorerPage[2m > [22m[2mrenders filters, KPI cards and confirmed transaction table
2026-08-28T15:29:51.1691961Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:51.1742325Z   at <DataExplorerPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.1811192Z   at <VTUROOT>
2026-08-28T15:29:51.1844894Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:51.1903505Z   at <DataExplorerPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.2009347Z   at <VTUROOT>
2026-08-28T15:29:51.2122754Z 
2026-08-28T15:29:51.6591978Z [90mstderr[2m | src/pages/BudgetCategoriesPage.test.ts[2m > [22m[2mBudgetCategoriesPage UX fix[2m > [22m[2mseparates expense and income category tables and hides archived categories from normal rows
2026-08-28T15:29:51.6631616Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:51.6670989Z   at <HouseholdTabs> 
2026-08-28T15:29:51.6701015Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.6730792Z   at <VTUROOT>
2026-08-28T15:29:51.6756728Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:51.6776252Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:51.6821077Z   at <HouseholdTabs> 
2026-08-28T15:29:51.6841007Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.6860904Z   at <VTUROOT>
2026-08-28T15:29:51.6900727Z 
2026-08-28T15:29:51.8612584Z [90mstderr[2m | src/pages/BudgetCategoriesPage.test.ts[2m > [22m[2mBudgetCategoriesPage UX fix[2m > [22m[2msaves expense and income order separately through typed reorder API
2026-08-28T15:29:51.8621902Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:51.8641273Z   at <HouseholdTabs> 
2026-08-28T15:29:51.8675698Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.8690905Z   at <VTUROOT>
2026-08-28T15:29:51.8711086Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:51.8731735Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:51.8732805Z   at <HouseholdTabs> 
2026-08-28T15:29:51.8733338Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.8733881Z   at <VTUROOT>
2026-08-28T15:29:51.8734116Z 
2026-08-28T15:29:51.9755841Z [90mstderr[2m | src/pages/BudgetCategoriesPage.test.ts[2m > [22m[2mBudgetCategoriesPage UX fix[2m > [22m[2mkeeps CRUD actions visible without technical ids and uses preview/confirm/audit APIs
2026-08-28T15:29:51.9771538Z [22m[39m[Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:51.9772271Z   at <HouseholdTabs> 
2026-08-28T15:29:51.9772823Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.9773399Z   at <VTUROOT>
2026-08-28T15:29:51.9774005Z [Vue warn]: Failed to resolve component: RouterLink
2026-08-28T15:29:51.9775357Z If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. 
2026-08-28T15:29:51.9776381Z   at <HouseholdTabs> 
2026-08-28T15:29:51.9776915Z   at <BudgetCategoriesPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:51.9777483Z   at <VTUROOT>
2026-08-28T15:29:51.9778025Z 
2026-08-28T15:29:51.9984019Z  [32m✓[39m src/pages/BudgetCategoriesPage.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 625[2mms[22m[39m
2026-08-28T15:29:52.0042419Z      [33m[2m✓[22m[39m separates expense and income category tables and hides archived categories from normal rows [33m 327[2mms[22m[39m
2026-08-28T15:29:52.2586325Z [90mstderr[2m | src/pages/DataExplorerPage.test.ts[2m > [22m[2mDataExplorerPage[2m > [22m[2mopens a detail dialog on row click
2026-08-28T15:29:52.2631633Z [22m[39m[Vue warn]: injection "Symbol(router)" not found. 
2026-08-28T15:29:52.2671887Z   at <DataExplorerPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:52.2710903Z   at <VTUROOT>
2026-08-28T15:29:52.2751164Z [Vue warn]: injection "Symbol(route location)" not found. 
2026-08-28T15:29:52.2781106Z   at <DataExplorerPage ref="VTU_COMPONENT" > 
2026-08-28T15:29:52.2820966Z   at <VTUROOT>
2026-08-28T15:29:52.2846159Z 
2026-08-28T15:29:52.5432262Z  [32m✓[39m src/pages/DataExplorerPage.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 2448[2mms[22m[39m
2026-08-28T15:29:52.5502174Z      [33m[2m✓[22m[39m renders filters, KPI cards and confirmed transaction table [33m 1498[2mms[22m[39m
2026-08-28T15:29:52.5503986Z      [33m[2m✓[22m[39m opens a detail dialog on row click [33m 946[2mms[22m[39m
2026-08-28T15:29:54.9300886Z  [32m✓[39m src/components/wealth/AssetRefreshControl.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 789[2mms[22m[39m
2026-08-28T15:29:54.9371918Z      [33m[2m✓[22m[39m does not start or query a job on mount [33m 415[2mms[22m[39m
2026-08-28T15:29:55.5001496Z  [32m✓[39m src/components/portfolio-data/PortfolioAnalyticsPanel.test.ts [2m([22m[2m4 tests[22m[2m)[22m[33m 735[2mms[22m[39m
2026-08-28T15:29:55.5082593Z      [33m[2m✓[22m[39m shows risk distribution without a second performance or benchmark source [33m 357[2mms[22m[39m
2026-08-28T15:29:58.0104083Z  [32m✓[39m src/pages/BudgetReviewBacklogPage.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 820[2mms[22m[39m
2026-08-28T15:29:58.0513490Z      [33m[2m✓[22m[39m renders backlog header, workgroups, safe confirm previews and category assignment [33m 818[2mms[22m[39m
2026-08-28T15:29:58.4481548Z  [32m✓[39m src/components/household/TransactionDetailDrawer.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 579[2mms[22m[39m
2026-08-28T15:29:58.4483770Z      [33m[2m✓[22m[39m stops after an explicit preview and does not confirm automatically [33m 576[2mms[22m[39m
2026-08-28T15:30:00.8115402Z  [32m✓[39m src/pages/GroceryPriceProvidersV1.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 646[2mms[22m[39m
2026-08-28T15:30:00.8117615Z      [33m[2m✓[22m[39m keeps Migros Optimizer route available but not prominent in user navigation [33m 459[2mms[22m[39m
2026-08-28T15:30:01.3006658Z  [32m✓[39m src/pages/BudgetImportPage.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 587[2mms[22m[39m
2026-08-28T15:30:01.3009305Z      [33m[2m✓[22m[39m shows dry-run result, enables candidate creation, and builds review link with session filters [33m 330[2mms[22m[39m
2026-08-28T15:30:03.3492351Z  [32m✓[39m src/components/crypto/CryptoReconciliationPanel.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 445[2mms[22m[39m
2026-08-28T15:30:03.3511911Z      [33m[2m✓[22m[39m renders coverage and enforces preview before append-only confirm [33m 443[2mms[22m[39m
2026-08-28T15:30:04.0099552Z  [32m✓[39m src/pages/BudgetMonthlyImportPage.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 491[2mms[22m[39m
2026-08-28T15:30:04.0106608Z      [33m[2m✓[22m[39m renders dashboard, import history and review transition without auto booking [33m 488[2mms[22m[39m
2026-08-28T15:30:05.8441011Z  [32m✓[39m src/components/SystemControls.test.ts [2m([22m[2m3 tests[22m[2m)[22m[33m 452[2mms[22m[39m
2026-08-28T15:30:06.7132430Z  [32m✓[39m src/navigation/UserNavigationSmoke.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 266[2mms[22m[39m
2026-08-28T15:30:09.3090968Z  [32m✓[39m src/components/ui/DataQualityBadge.test.ts [2m([22m[2m8 tests[22m[2m)[22m[33m 1158[2mms[22m[39m
2026-08-28T15:30:09.5399490Z  [32m✓[39m src/components/SidebarNav.mobile.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 482[2mms[22m[39m
2026-08-28T15:30:09.5482300Z      [33m[2m✓[22m[39m uses four touch-safe areas plus More and marks the active area [33m 313[2mms[22m[39m
2026-08-28T15:30:12.2242892Z  [32m✓[39m src/components/wealth/PortfolioAnalysisPanel.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 436[2mms[22m[39m
2026-08-28T15:30:12.2249794Z      [33m[2m✓[22m[39m shows policy deviations, concentration, metadata quality and only portfolio-level actions [33m 434[2mms[22m[39m
2026-08-28T15:30:12.5403053Z  [32m✓[39m src/pages/BudgetSetupPage.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 273[2mms[22m[39m
2026-08-28T15:30:14.9312404Z  [32m✓[39m src/pages/BudgetCategoryAssignmentA11y.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 468[2mms[22m[39m
2026-08-28T15:30:14.9392296Z      [33m[2m✓[22m[39m names candidate selection and supports complete keyboard row activation [33m 463[2mms[22m[39m
2026-08-28T15:30:15.2022542Z  [32m✓[39m src/pages/ReportsPage.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 330[2mms[22m[39m
2026-08-28T15:30:15.2032070Z      [33m[2m✓[22m[39m renders report type period format preview generate and existing runtime reports [33m 328[2mms[22m[39m
2026-08-28T15:30:17.4836413Z  [32m✓[39m src/components/charts/MarketChart.test.ts [2m([22m[2m2 tests[22m[2m)[22m[33m 477[2mms[22m[39m
2026-08-28T15:30:17.4838444Z      [33m[2m✓[22m[39m renders a TradingView lightweight chart with range selector and no provider call by itself [33m 353[2mms[22m[39m
2026-08-28T15:30:17.8151840Z  [32m✓[39m src/components/household/HouseholdNavigation.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 295[2mms[22m[39m
2026-08-28T15:30:19.6232364Z  [32m✓[39m src/composables/useQueryFilters.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 65[2mms[22m[39m
2026-08-28T15:30:20.0805061Z  [32m✓[39m src/api/client.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 9[2mms[22m[39m
2026-08-28T15:30:22.4602622Z  [32m✓[39m src/components/ui/AvailabilityState.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m 779[2mms[22m[39m
2026-08-28T15:30:23.1482574Z  [32m✓[39m src/components/policy/PolicyAllocationStatus.test.ts [2m([22m[2m6 tests[22m[2m)[22m[33m 743[2mms[22m[39m
2026-08-28T15:30:25.0643202Z  [32m✓[39m src/App.test.ts [2m([22m[2m1 test[22m[2m)[22m[33m 464[2mms[22m[39m
2026-08-28T15:30:25.0687132Z      [33m[2m✓[22m[39m renders the user dashboard shell [33m 461[2mms[22m[39m
2026-08-28T15:30:25.5452430Z  [32m✓[39m src/utils/formatters.test.ts [2m([22m[2m2 tests[22m[2m)[22m[32m 36[2mms[22m[39m
2026-08-28T15:30:26.5826920Z  [32m✓[39m src/utils/month.test.ts [2m([22m[2m1 test[22m[2m)[22m[32m 4[2mms[22m[39m
2026-08-28T15:30:26.5881011Z 
2026-08-28T15:30:26.5892646Z [31m⎯⎯⎯⎯⎯⎯⎯[39m[1m[41m Failed Tests 1 [49m[22m[31m⎯⎯⎯⎯⎯⎯⎯[39m
2026-08-28T15:30:26.5893418Z 
2026-08-28T15:30:26.5895350Z [41m[1m FAIL [22m[49m src/pages/MobileUx.test.ts[2m > [22mVue mobile UX v1[2m > [22mrenders crypto and equity mobile cards with table fallback hidden on small screens
2026-08-28T15:30:26.5897380Z [31m[1mError[22m: Cannot call text on an empty DOMWrapper.[39m
2026-08-28T15:30:26.5899171Z [90m [2m❯[22m Object.get node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:[2m1495:27[22m[39m
2026-08-28T15:30:26.5900980Z [36m [2m❯[22m src/pages/MobileUx.test.ts:[2m84:61[22m[39m
2026-08-28T15:30:26.5932064Z     [90m 82|[39m     [35mconst[39m crypto [33m=[39m [34mmount[39m([33mCryptoPage[39m)
2026-08-28T15:30:26.5933443Z     [90m 83|[39m     [35mawait[39m [34mflushPromises[39m()
2026-08-28T15:30:26.5935046Z     [90m 84|[39m     expect(crypto.find('[data-testid="crypto-mobile-cards"]').text()).…
2026-08-28T15:30:26.5936612Z     [90m   |[39m                                                             [31m^[39m
2026-08-28T15:30:26.5938008Z     [90m 85|[39m     expect(crypto.find('[data-testid="crypto-desktop-table"]').classes…
2026-08-28T15:30:26.5939110Z     [90m 86|[39m
2026-08-28T15:30:26.5939599Z 
2026-08-28T15:30:26.5939703Z 
2026-08-28T15:30:26.5940739Z [31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯[22m[39m
2026-08-28T15:30:26.5941310Z 
2026-08-28T15:30:26.5948260Z [2m Test Files [22m [1m[31m1 failed[39m[22m[2m | [22m[1m[32m56 passed[39m[22m[90m (57)[39m
2026-08-28T15:30:26.5954860Z [2m      Tests [22m [1m[31m1 failed[39m[22m[2m | [22m[1m[32m251 passed[39m[22m[90m (252)[39m
2026-08-28T15:30:26.5956158Z [2m   Start at [22m 15:28:41
2026-08-28T15:30:26.5957749Z [2m   Duration [22m 104.80s[2m (transform 8.56s, setup 24.80s, import 13.37s, tests 71.83s, environment 82.39s)[22m
2026-08-28T15:30:26.5958890Z 
2026-08-28T15:30:26.5976413Z 
2026-08-28T15:30:26.6011846Z ##[error]Error: Cannot call text on an empty DOMWrapper.
 ❯ Object.get node_modules/@vue/test-utils/dist/vue-test-utils.cjs.js:1495:27
 ❯ src/pages/MobileUx.test.ts:84:61


2026-08-28T15:30:26.6641403Z ##[error]Process completed with exit code 1.
2026-08-28T15:30:26.6808370Z Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-08-28T15:30:26.6809706Z Post job cleanup.
2026-08-28T15:30:26.7798831Z [command]/usr/bin/git version
2026-08-28T15:30:26.7892715Z git version 2.55.0
2026-08-28T15:30:26.7935383Z Temporarily overriding HOME='/home/runner/work/_temp/9df81dfe-40fd-4ac4-8926-414f3dd828b8' before making global git config changes
2026-08-28T15:30:26.7937235Z Adding repository directory to the temporary git global config as a safe directory
2026-08-28T15:30:26.7939143Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/FinanceManager/FinanceManager
2026-08-28T15:30:26.8015202Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand
2026-08-28T15:30:26.8528484Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
2026-08-28T15:30:26.8661671Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2026-08-28T15:30:26.8726469Z http.https://github.com/.extraheader
2026-08-28T15:30:26.8729617Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
2026-08-28T15:30:26.9064204Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
2026-08-28T15:30:26.9183571Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
2026-08-28T15:30:26.9186576Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
2026-08-28T15:30:26.9709549Z Cleaning up orphan processes
2026-08-28T15:30:27.0072994Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
